home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / cmln0486.arc / MENU.LT2 < prev    next >
Text File  |  1986-04-06  |  2KB  |  57 lines

  1. stty -echo; cat - > MEN.H; stty echo
  2. #define DISPLAY 3 /* class types */
  3. #define INTEGER 2
  4. #define STRING 1
  5.  
  6. char menline[LINELEN]; /* this holds any parameters */
  7.  
  8. struct menu {
  9.         int noitems; /* how many items this menu line */
  10.         char items[10][20]; /* string array for the items themselves */
  11.         int next[10];  /* pointer to either the next menu line */
  12.             /* or,  if negative, to function in pointer array */
  13.         int class[10]; /* class is used to determine 
  14.             what kind of value to pass to function, 
  15.             or whether to even call one,  as follows:
  16.                 DISPLAY - show menu only,  call no function
  17.                 INTEGER - pass an integer to function
  18.                 STRING    - pass a string pointer to function
  19.             */
  20. } men[] = { /* here is where you initialize the menu items 
  21.         since we're dealing with a static array size,
  22.         you've got to enter null pointers and zeroes,  as
  23.         appropriate.  The data here is only a sample.        
  24.         The negative "next" items index into the function
  25.         pointer array and the help array;  if they were positive 
  26.         numbers,  they would index into another menu line */
  27. /* 0 */
  28. 3,"A test","One","Two","","","","","","","",
  29.  -1,-2,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  30.  
  31.  
  32. /* all the functions you're going to link in will require declaration */
  33. extern int test();
  34. extern int one();
  35. extern int two();
  36.  
  37. /* convenience only,  but may be useful later */
  38. typedef int (*PF)();
  39.  
  40. /* now all function names must be arrayed. Note the zeroth element cannot
  41. be used */
  42. PF func[] = {
  43. test,
  44. test,
  45. one,
  46. two};
  47.  
  48. /* here's the help which is also indexed along with the function pointers */
  49. char menu_help[][COLS] = {
  50. " ",
  51. "first item",
  52. "second item",
  53. "third item"};
  54. ng with the function pointers */
  55. char menu_help[][COLS] = {
  56. " ",
  57. "first item",